Kinetis SDK API Reference Manual  1.0.0-beta
Freescale Semiconductor, Inc.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
fsl_dspi_hal.h File Reference
#include <assert.h>
#include <stdint.h>
#include <stdbool.h>
#include "fsl_dspi_features.h"
#include "fsl_device_registers.h"

Data Structures

struct  dspi_data_format_config_t
 DSPI data format settings configuration structure. More...
 
struct  dspi_master_config_t
 DSPI hardware configuration settings for master mode. More...
 
struct  dspi_slave_config_t
 DSPI hardware configuration settings for slave mode. More...
 
struct  dspi_baud_rate_divisors_t
 DSPI baud rate divisors settings configuration structure. More...
 
struct  dspi_delay_settings_config_t
 DSPI delay settings configuration structure. More...
 
struct  dspi_command_config_t
 DSPI command and data configuration structure. More...
 

Enumerations

enum  dspi_status_t {
  kStatus_DSPI_Success = 0,
  kStatus_DSPI_SlaveTxUnderrun,
  kStatus_DSPI_SlaveRxOverrun,
  kStatus_DSPI_Timeout,
  kStatus_DSPI_Busy,
  kStatus_DSPI_NoTransferInProgress,
  kStatus_DSPI_InvalidBitCount,
  kStatus_DSPI_InvalidInstanceNumber,
  kStatus_DSPI_OutOfRange
}
 Error codes for the DSPI driver. More...
 
enum  dspi_master_slave_mode_t {
  kDspiMaster = 1,
  kDspiSlave = 0
}
 DSPI master or slave configuration. More...
 
enum  dspi_clock_polarity_t {
  kDspiClockPolarity_ActiveHigh = 0,
  kDspiClockPolarity_ActiveLow = 1
}
 DSPI clock polarity configuration for a given CTAR. More...
 
enum  dspi_clock_phase_t {
  kDspiClockPhase_FirstEdge = 0,
  kDspiClockPhase_SecondEdge = 1
}
 DSPI clock phase configuration for a given CTAR. More...
 
enum  dspi_shift_direction_t {
  kDspiMsbFirst = 0,
  kDspiLsbFirst = 1
}
 DSPI data shifter direction options for a given CTAR. More...
 
enum  dspi_ctar_selection_t {
  kDspiCtar0 = 0,
  kDspiCtar1 = 1
}
 DSPI Clock and Transfer Attributes Register (CTAR) selection. More...
 
enum  dspi_pcs_polarity_config_t {
  kDspiPcs_ActiveHigh = 0,
  kDspiPcs_ActiveLow = 1
}
 DSPI Peripheral Chip Select (PCS) Polarity configuration. More...
 
enum  dspi_which_pcs_config_t {
  kDspiPcs0 = 1 << 0,
  kDspiPcs1 = 1 << 1,
  kDspiPcs2 = 1 << 2,
  kDspiPcs3 = 1 << 3,
  kDspiPcs4 = 1 << 4,
  kDspiPcs5 = 1 << 5
}
 DSPI Peripheral Chip Select (PCS) configuration (which PCS to configure) More...
 
enum  dspi_master_sample_point_t {
  kDspiSckToSin_0Clock = 0,
  kDspiSckToSin_1Clock = 1,
  kDspiSckToSin_2Clock = 2
}
 DSPI Sample Point: Controls when the DSPI master samples SIN in Modified Transfer Format. More...
 
enum  dspi_fifo_t {
  kDspiTxFifo = 0,
  kDspiRxFifo = 1
}
 DSPI FIFO selects. More...
 
enum  dspi_status_and_interrupt_request_t {
  kDspiTxComplete = BP_SPI_RSER_TCF_RE,
  kDspiTxAndRxStatus = BP_SPI_SR_TXRXS,
  kDspiEndOfQueue = BP_SPI_RSER_EOQF_RE,
  kDspiTxFifoUnderflow = BP_SPI_RSER_TFUF_RE,
  kDspiTxFifoFillRequest = BP_SPI_RSER_TFFF_RE,
  kDspiRxFifoOverflow = BP_SPI_RSER_RFOF_RE,
  kDspiRxFifoDrainRequest = BP_SPI_RSER_RFDF_RE
}
 DSPI status flags and interrupt request enable. More...
 
enum  dspi_fifo_counter_pointer_t {
  kDspiRxFifoPointer = BP_SPI_SR_POPNXTPTR,
  kDspiRxFifoCounter = BP_SPI_SR_RXCTR,
  kDspiTxFifoPointer = BP_SPI_SR_TXNXTPTR,
  kDspiTxFifoCounter = BP_SPI_SR_TXCTR
}
 DSPI FIFO counter or pointer defines based on bit positions. More...
 

Functions

Configuration
dspi_status_t dspi_hal_master_init (uint32_t instance, const dspi_master_config_t *config, uint32_t *calculatedBaudRate)
 Configure the DSPI peripheral in master mode. More...
 
dspi_status_t dspi_hal_slave_init (uint32_t instance, const dspi_slave_config_t *config)
 Configures the DSPI peripheral in slave mode. More...
 
void dspi_hal_reset (uint32_t instance)
 Restores the DSPI to reset the configuration. More...
 
static void dspi_hal_enable (uint32_t instance)
 Enable the DSPI peripheral, set MCR MDIS to 0. More...
 
static void dspi_hal_disable (uint32_t instance)
 Disables the DSPI peripheral, sets MCR MDIS to 1. More...
 
uint32_t dspi_hal_set_baud (uint32_t instance, dspi_ctar_selection_t whichCtar, uint32_t bitsPerSec, uint32_t sourceClockInHz)
 Sets the DSPI baud rate in bits per second. More...
 
void dspi_hal_set_baud_divisors (uint32_t instance, dspi_ctar_selection_t whichCtar, const dspi_baud_rate_divisors_t *divisors)
 Configures the baud rate divisors manually. More...
 
static void dspi_hal_set_master_slave (uint32_t instance, dspi_master_slave_mode_t mode)
 Configures the DSPI for master or slave. More...
 
static void dspi_hal_configure_continuous_sck (uint32_t instance, bool enable)
 Configures the DSPI for the continuous SCK operation. More...
 
static void dspi_hal_configure_modified_timing_format (uint32_t instance, bool enable)
 Configures the DSPI to enable modified timing format. More...
 
static void dspi_hal_configure_pcs_strobe (uint32_t instance, bool enable)
 Configures the DSPI peripheral chip select strobe enable. More...
 
static void dspi_hal_configure_rx_fifo_overwrite (uint32_t instance, bool enable)
 Configures the DSPI received FIFO overflow overwrite enable. More...
 
void dspi_hal_configure_pcs_polarity (uint32_t instance, dspi_which_pcs_config_t pcs, dspi_pcs_polarity_config_t activeLowOrHigh)
 Configures the DSPI peripheral chip select polarity. More...
 
void dspi_hal_configure_fifos (uint32_t instance, bool disableTxFifo, bool disableRxFifo)
 Configures the DSPI FIFOs. More...
 
void dspi_hal_flush_fifos (uint32_t instance, bool enableFlushTxFifo, bool enableFlushRxFifo)
 Flushes the DSPI FIFOs. More...
 
static void dspi_hal_set_datain_samplepoint (uint32_t instance, dspi_master_sample_point_t samplePnt)
 Configures when the DSPI master samples SIN in the Modified Transfer Format. More...
 
static void dspi_hal_start_transfer (uint32_t instance)
 Starts the DSPI transfers, clears HALT bit in MCR. More...
 
static void dspi_hal_stop_transfer (uint32_t instance)
 Stops (halts) DSPI transfers, sets HALT bit in MCR. More...
 
dspi_status_t dspi_hal_configure_data_format (uint32_t instance, dspi_ctar_selection_t whichCtar, const dspi_data_format_config_t *config)
 Configures the data format for a particular CTAR. More...
 
void dspi_hal_configure_delays (uint32_t instance, dspi_ctar_selection_t whichCtar, const dspi_delay_settings_config_t *config)
 Configures the delays for a particular CTAR, master mode only. More...
 
DMA
void dspi_hal_configure_dma (uint32_t instance, bool enableTransmit, bool enableReceive)
 Configures transmit and receive DMA requests. More...
 
Low power
static void dspi_hal_configure_doze_mode (uint32_t instance, bool enable)
 Configures the DSPI operation during doze mode. More...
 
Interrupts
void dspi_hal_configure_interrupt (uint32_t instance, dspi_status_and_interrupt_request_t interruptSrc, bool enable)
 Configures the DSPI interrupts. More...
 
static bool dspi_hal_get_interrupt_config (uint32_t instance, dspi_status_and_interrupt_request_t interruptSrc)
 Gets the DSPI interrupt configuration, returns if interrupt request is enabled or disabled. More...
 
Status
static bool dspi_hal_get_status_flag (uint32_t instance, dspi_status_and_interrupt_request_t statusFlag)
 Gets the DSPI status flag state. More...
 
static void dspi_hal_clear_status_flag (uint32_t instance, dspi_status_and_interrupt_request_t statusFlag)
 Clears the DSPI status flag. More...
 
static uint32_t dspi_hal_get_fifo_counter_or_pointer (uint32_t instance, dspi_fifo_counter_pointer_t desiredParameter)
 Gets the DSPI FIFO counter or pointer. More...
 
Data transfer
static uint32_t dspi_hal_read_data (uint32_t instance)
 Reads data from the data buffer. More...
 
static void dspi_hal_write_data_slave_mode (uint32_t instance, uint32_t data)
 Writes data into the data buffer, slave mode. More...
 

Variables

static const uint32_t s_baudratePrescaler [] = { 2, 3, 5, 7 }
 
static const uint32_t s_baudrateScaler []